/*
 * Conference class for the Conference Application
 * Author: Jonathan Forbes
 * TCSS 360 Spring 2013 
 * University of Washington
 */

package Model;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

public class Conference implements Serializable{

	/**
	 * Class that holds the Model of the Conference object, including all deadlines pertinent
	 * to the conference, as well as the conference's title, program chair, and its list of papers.
	 * 
	 * @author Jonathan Forbes
	 * @version 1.0
	 */
	private static final long serialVersionUID = 1L;

	private List<Paper> conference_papers;

	private String conference_name;

	private User program_chair;

	private Deadline conference_date;

	private Deadline paper_submission;

	private Deadline review_papers;

	private Deadline notify_authors;

	private Deadline paper_revision_submission;

	public Conference(String conference_name, User program_chair, Deadline conference_date,
			Deadline paper_submission, Deadline review_papers, Deadline notify_authors,
			Deadline paper_revision_submission) {
		conference_papers = new ArrayList<Paper>();
		this.conference_name = conference_name;
		this.program_chair = program_chair;
		this.conference_date = conference_date;
		this.paper_submission = paper_submission;
		this.review_papers = review_papers;
		this.notify_authors = notify_authors;
		this.paper_revision_submission = paper_revision_submission;
	}

	public void addPaper(Paper the_paper) {
		conference_papers.add(the_paper);
	}

	public String getConferenceName() {
		return conference_name;
	}

	public User getProgramChair() {
		return program_chair;
	}

	public Deadline getConferenceDate() {
		return conference_date;
	}

	public Deadline getPaperSubmissionDeadLine() {
		return paper_submission;
	}

	public Deadline getReviewsDeadline() {
		return review_papers;
	}

	public Deadline getNotifyAuthorsDeadline() {
		return notify_authors;
	}

	public Deadline getPaperRevisionSubmissionDeadline() {
		return paper_revision_submission;
	}

	public List<Paper> getConferencePapers() {
		return conference_papers;

	}
}





















